import request from '@/utils/request';

const productApi = {
  /**
   * 获取商品列表
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.limit - 每页数量
   * @param {string} [params.keyword] - 搜索关键词
   * @param {string} [params.categoryId] - 分类ID
   * @param {string} [params.sort] - 排序方式
   */
  getProductList(params) {
    return request({
      url: '/api/product/list',
      method: 'GET',
      data: params
    });
  },

  /**
   * 获取商品详情
   * @param {string} id - 商品ID
   */
  getProductDetail(id) {
    return request({
      url: `/api/product/detail/${id}`,
      method: 'GET',
      loading: true,
      loadingText: '加载中...'
    });
  },

  /**
   * 获取商品规格信息
   * @param {string} id - 商品ID
   */
  getProductSpecifications(id) {
    return request({
      url: `/api/product/specifications/${id}`,
      method: 'GET'
    });
  },

  /**
   * 获取商品评价
   * @param {string} id - 商品ID
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.limit - 每页数量
   * @param {number} [params.type] - 评价类型：0全部，1好评，2中评，3差评
   */
  getProductReviews(id, params) {
    return request({
      url: `/api/product/reviews/${id}`,
      method: 'GET',
      data: params
    });
  },

  /**
   * 获取相关商品推荐
   * @param {string} id - 商品ID
   * @param {number} limit - 获取数量
   */
  getRelatedProducts(id, limit = 6) {
    return request({
      url: `/api/product/related/${id}`,
      method: 'GET',
      data: { limit }
    });
  },

  /**
   * 获取热门搜索关键词
   */
  getHotSearchKeywords() {
    return request({
      url: '/api/product/hotSearch',
      method: 'GET'
    });
  },

  /**
   * 获取搜索历史
   */
  getSearchHistory() {
    return request({
      url: '/api/product/searchHistory',
      method: 'GET'
    });
  },

  /**
   * 清空搜索历史
   */
  clearSearchHistory() {
    return request({
      url: '/api/product/searchHistory',
      method: 'DELETE'
    });
  },

  /**
   * 保存搜索关键词
   * @param {string} keyword - 搜索关键词
   */
  saveSearchKeyword(keyword) {
    return request({
      url: '/api/product/searchHistory',
      method: 'POST',
      data: { keyword }
    });
  },

  /**
   * 获取商品分类
   */
  getCategories() {
    return request({
      url: '/api/product/categories',
      method: 'GET'
    });
  }
};

export default productApi; 